Scroll to navigation

DEPMOD(8) Manuel de l'administrateur Linux DEPMOD(8)

NOM

depmod - Gestion des dépendances entre les modules du noyau

SYNOPSIS

depmod [-aA] [-ehnqrsuvV] [-C configfile] [-F kernelsyms] [-b basedirectory] [forced_version]
depmod [-enqrsuv] [-F kernelsyms] module1.o module2.o ...

DESCRIPTION

Les utilitaires depmod et modprobe ont été conçus pour rendre le noyau Linux modulaire, configurable pour tous les utilisateurs, administrateurs et concepteurs de distribution.

depmod crée un fichier de dépendances de type « Makefile », basé sur les symboles qu'il trouve dans les modules indiqués sur la ligne de commande ou dans les répertoires indiqués par le fichier de configuration. Ce fichier est ensuite utilisé par modprobe pour charger automatiquement le bon module ou l'ensemble de modules.

L'invocation normale de depmod se fait en incluant la ligne

/sbin/depmod -a

dans un fichier de démarrage de /etc/rc.d, afin que les dépendances entre modules soient disponibles immédiatement après le démarrage du système. Notez que l'option -a est maintenant facultative. Pour le démarrage, l'option -q peut s'avérer plus appropriée car elle permet de laisser depmod silencieux malgré les symboles non résolus.

On peut aussi créer le fichier de dépendances immédiatement après avoir compilé un nouveau noyau. Si vous faites « depmod -a 2.4.21 » après avoir compilé le noyau 2.4.21 et ses modules pour la première fois, tout en continuant de travailler avec par exemple le 2.4.20, le fichier sera créé à l'emplacement adéquat. Dans ce cas toutefois, les dépendances avec le nouveau noyau ne sont pas garanties. Voir les options -F, -C, et -b pour plus de détails sur ce problème.

Pour analyser les relations entre modules et symboles exportés, depmod ne tient pas compte du status GPL des modules ou des symboles exportés. Ceci signifie que depmod n'indiquera pas d'erreur si un module sans licence compatible GPL fait référence à un symbole « GPL seulement » (EXPORT_SYMBOL_GPL dans le noyau). Néanmoins, insmod refusera de résoudre les symboles « GPL seulement » pour les modules non-GPL et le véritable chargement échouera.

OPTIONS

Examine les modules dans tous les répertoires spécifiés dans le fichier (facultatif) de configuration /etc/modules.conf.
Comparer les horodatades des fichiers, et au besoin, agir comme depmod -a. Cette option ne met à jour le fichier de dépendance qu'en cas de changement.
Affiche tous les symboles non résolus pour chaque module.
Affiche une page d'aide et se termine immédiatement.
Affiche les dépendances sur la sortie standard plutôt que /lib/modules.
Demande une exécution silencieuse sans compte-rendu des fonctions manquantes.
Quelques utilisateurs compilent les modules sans droits root et les installent en étant root. Ceci risque de créer des modules n'appartenant pas à root, même si le répertoire des modules est propriété du root. Si un tel compte utilisateur est piraté, un intrus peut modifier ces modules et les utiliser pour obtenir un accès root.
Par défaut, modutils rejettera les demandes d'utilisation d'un module qui n'appartient à root. L'option -r supprimera l'erreur et autorisera le chargement de module n'appartenant pas à root.
L'utilisation de -r est un danger pour la sécurité et est déconseillée.
Envoie les messages d'erreurs au démon syslog plutôt que sur stderr.
depmod 2.4 ne donne pas de code de retour lorsqu'il y a des symboles non résolus. La version majeure suivante de modutils (2.5) fournira un code pour les symboles non-résolus. Certaines distributions préfèrent un code non-nul dans modutils 2.4 mais ceci pose des problèmes avec les utilisateurs qui comptent sur l'ancien comportement. Si vous voulez un code non-num pour depmod 2.4, indiquez -u. depmod 2.5 ignorera silencieusement l'option -u et renverra toujours un code non-nul en cas de symboles non résolus;
Affiche le nom de chaque module traité.
Affiche la version de depmod.

Les options suivantes sont utiles aux développeurs ds distributions :

Si l'arborescence sous /lib/modules contenant les modules est déplacée ailleurs pour gérer les modules dans différents environnements, l'option -b indique à depmod où trouver l'image déplacée de l'arborescence /lib/modules. Les noms indiqués dans le fichier modules.dep créé par depmod, ne contiendront pas basedirectory. Cela signifie que l'arborescence basedirectory/lib/modules pourra se retrouver dans /lib/modules dans la distribution, avec toutes les références correctes.
Utiliser le fichier configfile plutôt que le fichier /etc/modules.conf. La variable d'environnement MODULECONF peut aussi être utilisée pour sélectionner un fichier de configuration différent de celui par défaut /etc/modules.conf ou (déconseillé) /etc/conf.modules ).
UNAME_MACHINE est remplie, modutils l'utilisera à la place du champ « machine » de l'appel système uname(2). Ceci est surtout utile si vous compilez des modules 64 bits dans un espace utilisateur 32 bits ou inversement ; remplissez UNAME_MACHINE avec le type de modules construits. La version actuelle de modutils ne supporte pas la construction croisée complète de modules, elle est limitée au choix entre 32 et 64 bits de l'architecture hôte.
Quand on construit les fichiers des dépendances pour un noyau différent de celui en cours d'utilisation, il est important que depmod utilise le bon jeu de fonctions pour trouver les références du noyau dans chaque module. Ces fonctions peuvent être une copie de System.map provenant d'un autre noyau, ou une copie de la sortie de /proc/ksyms. Si votre noyau utilise des symboles avec numéros de version, il vaut mieux utiliser une copie de la sortie de /proc/ksyms, car ce fichier contient les numéros de version des fonctions du noyau. Toutefois, vous pouvez utiliser System.map même avec les numéros de version.

CONFIGURATION

Le comportement de depmod et de modprobe peut être ajusté par le fichier (optionnel) de configuration /etc/modules.conf.
Voir modprobe(8) et modules.conf(5) pour une description complète.

STRATÉGIE

Chaque fois que vous compilez un noyau, la commande make modules_install créera un nouveau répertoire, mais ne changera pas le répertoire par défaut.

Quand vous avez un module non relié à la distribution du noyau, vous devez le mettre dans un répertoire indépendant de la version sous /lib/modules.

C'est la stratégie par défaut, laquelle peut être remplacée dans /etc/modules.conf.

FICHIERS

/etc/modules.conf (aussi, mais déconseillé, /etc/conf.modules)
/lib/modules/*/modules.dep,
/lib/modules/*

BOGUES

depmod [ -V | --version ] devrait se terminer immédiatement. En fait, il affiche la version et se comporte comme s'il n'avait aucune option.

AUTEURS

Jacques Gelinas (jack@solucorp.qc.ca)
Bjorn Ekwall (bj0rn@blox.se)

VOIR AUSSI

modules.conf(5), modprobe(8), modinfo(8), lsmod(8), ksyms(8)

TRADUCTION

Ce document est une traduction réalisée par Jérome Signouret en 2000 et révisée le 19 novembre 20077.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 8 depmod ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.

12 février 2003 modutils